package com.leigq.basaltools.constant;

import com.leigq.basaltools.enumeration.GlobalEnums;
import com.leigq.basaltools.util.RegexUtils;

import java.util.regex.Pattern;

/**
 * 正则表达式常量
 *
 * @author leigq
 * @date 2021-05-17 10:36:03
 */
public interface RegexConstants {

    /**
     * 验证手机
     */
    Pattern PHONE_PATTERN = RegexUtils.getPattern(GlobalEnums.Regex.PHONE);

    /**
     * 验证邮箱
     */
    Pattern EMAIL_PATTERN = getPattern(GlobalEnums.Regex.EMAIL);

    /**
     * 判断字符串是否为纯数字
     */
    Pattern ALL_NUMBER_PATTERN = getPattern(GlobalEnums.Regex.ALL_NUMBER);

    /**
     * 6-20个字母、数字、下划线或减号，以字母开头（适用于用户名、密码）
     */
    Pattern SIX_TO_TWENTY_PATTERN = getPattern(GlobalEnums.Regex.SIX_TO_TWENTY);

    /**
     * 身份证号码(18位)
     */
    Pattern EIGHTEEN_IDCARD_PATTERN = getPattern(GlobalEnums.Regex.EIGHTEEN_IDCARD);

    /**
     * 2-4位中文汉字(真实姓名)
     */
    Pattern TWO2FOUR_CHINESE_PATTERN = getPattern(GlobalEnums.Regex.TWO2FOUR_CHINESE);


    /**
     * 校验日期格式为yyyy-MM-dd HH:mm:ss的正则表达式
     */
    Pattern DATE_TIME_FORMAT_PATTERN = getPattern(GlobalEnums.Regex.DATE_TIME_FORMAT);


    /**
     * 校验日期格式为yyyy-MM-dd的正则表达式
     */
    Pattern DATE_FORMAT_PATTERN = getPattern(GlobalEnums.Regex.DATE_FORMAT);


    /**
     * Gets pattern.
     *
     * @param regex the regex
     * @return the pattern
     */
    static Pattern getPattern(GlobalEnums.Regex regex) {
        return RegexUtils.getPattern(regex);
    }

}
